Systems and methods of presenting virtual tape products to a client

ABSTRACT

Systems and methods for presenting virtual tape products to a client are disclosed. An exemplary method may include allocating a plurality of disks connected to a host bus adapter (HBA) as both virtual tape storage and virtual disk storage. The method may also include translating at the HBA an input/output (I/O) communication between the client and the plurality of disks to access at least a portion of the plurality of disks allocated as virtual tape storage. The method may also include handling all other I/O communication between the client and the plurality of disks for access to the plurality of disks allocated as virtual disk storage.

BACKGROUND

Tape drive storage is one of the oldest, most reliable forms of datastorage for computing devices. As hard disk drives have become morereliable, faster, able to store more data, and relatively inexpensive,hard disk drives have become the preferred form of storage forindividual computing devices. Server computers and even some personalcomputers (PCs) are now commercially available which support redundantarray of independent disks (RAID) for automatic data redundancy.

However, tape drives continue to have a place in the marketplace fordata backup/restore operations. For example, many computer users arecomfortable with the software used for data backup/restore operations ontape drives. Accordingly, stand-alone “virtual” tape drive devices havebeen developed which provide a conventional tape drive interface to theuser while actually storing the data on a hard disk drive.

However, this is a hardware intensive solution. Hard disk drive storageis still necessary and now the stand-alone virtual tape drive deviceneeds to be added for backup/restore operations. Each requires their ownhardware and drivers to interface with the computing device. Thestand-alone nature of these virtual tape drive devices can increaseoverall system cost and introduces points of failure, while makinginefficient use of the available hard disk drive storage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level schematic diagram of an exemplary system whichmay be used for presenting virtual tape products to a client using diskstorage.

FIG. 2 is a more detailed schematic diagram of an exemplary host busadapter (HBA) which may be implemented in the system of FIG. 1 forpresenting virtual tape products using disk storage.

FIG. 3 is a flowchart illustrating exemplary operations for presentingvirtual tape products using disk storage.

DETAILED DESCRIPTION

Systems and methods of presenting virtual tape storage along with diskstorage without need for separate devices are disclosed. Briefly, anexemplary system may include a host bus adapter (HBA) with Input/Output(I/O) control functionality. The HBA is linked to a plurality of disksby an interconnect (e.g., SAS, Fibre channel, iSCSI, etc.). The HBAallocates the plurality of disks so that a portion is used as diskstorage (e.g., virtual disk drives) and another portion is used as tapestorage (e.g., virtual tape drives). The HBA also handles I/O operations(e.g., read/write requests) between a client operating system (OS) andthe plurality of disks. In an exemplary embodiment, the HBA translatestape storage I/O communications into small computer system interface(SCSI) commands for the plurality of disks.

Exemplary systems and methods may be implemented to provide both diskstorage and tape storage to one or more computing devices, withouthaving to provide separate disk and tape storage devices (e.g., astand-alone device). In addition, separate hardware interfaces are notneeded for the disk storage and tape storage. Data redundancy andfailover may also be implemented automatically for both the disk storageand tape storage. The disk storage and tape storage may also bepresented to the OS as virtual devices so that operations aretransparent, i.e., the storage appears to the user as discrete diskdrives and tape storage devices connected to the computing device.

Exemplary System

FIG. 1 is a high-level schematic diagram of an exemplary system whichmay be used for presenting virtual tape products to a client using diskstorage. Exemplary system 100 may include one or more clients. Theclients are illustrated in FIG. 1 as operating system (OS) 110 a-c. EachOS 110 a-c may be executed on a separate processor, or as separateinstances on a multi-partitioned processor. Each OS 110 a-c may beoperatively associated with respective host bus adapters (HBA) 120 a-cvia interfaces 130 a-c and driver stacks 140 a-c.

Before continuing, it is noted that the system 100 may be implementedwith a single client or with multiple clients. For purpose ofsimplification, the OS is referred to herein as 110, the HBA is referredto as 120, the interface is referred to as 130, and the driver stack isreferred to as 140, regardless of the actual number of each componentbeing implemented in the system 100.

OS 110 may be communicatively coupled with one or more storage devices,although only a single storage device 150 is shown in FIG. 1. Storagedevice 150 may implement storage operations on a plurality of disks 155.For example, storage device 150 may be a RAID storage system including anumber of hard disk drives. A RAID storage system enables automatic dataredundancy and provides a more reliable and robust work environment. Ofcourse, any suitable storage device 150 now known or later developed maybe implemented for storage operations on any of a wide variety of media.

In an exemplary embodiment, HBA 120 may be communicatively coupled withthe storage device 150 via a suitable switching fabric 160. The term“switching fabric” as used herein means the hardware and software formoving data in a networking environment by interconnecting a number ofports to establish a connection between one or more nodes. For example,the switching fabric may be implemented as an Ethernet or Fibre channel(FC) network. Of course other communication media may be alsoimplemented, including, but not limited to, small computer systeminterface (SCSI), universal serial bus (USB), the 1394 standard (orFirewire®), or other data transfer topologies now known or laterdeveloped.

HBA 120 interfaces with OS 110 and the storage device 150. HBA 120 mayinclude hardware and execute program code (e.g., firmware and/orsoftware) to carry out the functions described in more detail below, andin particular, to handle communications with the storage device 150. Forexample, HBA 120 may maintain a connection with the storage device 150,allocate virtual tape storage 170 and virtual disk storage 180 withinthe storage device 150, map the OS 110 to virtual tape storage 170 andvirtual disk storage 180, translate read/write operations between the OS110 and the storage device 150, and schedule access requests to thestorage device 150.

In an exemplary embodiment, HBA 120 is logically disconnected from thestorage device 150 by default, even though a physical connection mayexist (e.g., through the switching fabric 160). The HBA 120 may bemapped OS 110 to the storage device 150 to establish a logicalconnection for data access (read/write) operations with virtual tapestorage 170 and virtual disk storage 180 on an as-needed basis.

During operation, OS 110 may address the HBA 120 to request access tovirtual tape storage 170 and/or virtual disk storage 180 on the storagedevice 150. In an exemplary embodiment, the OS 110 may issue a requestvia the driver stack 140 and interface 130 identifying the virtual tapestorage 170 and/or virtual disk storage 180. The HBA may then map the OS110 to the appropriate and handle data access between the OS 110 and thestorage device 150.

In an exemplary embodiment, virtual devices are mapped to the OS 110,one at a time. The HBA 120 checks availability of the requested virtualtape storage 170 and/or virtual disk storage 180, and then maps the OS110 to the virtual tape storage 170 and/or virtual disk storage 180, ifavailable. If the requested virtual tape storage 170 and/or virtual diskstorage 180 is not available (e.g., turned off or already in use), theHBA 120 may queue the request for the OS 110. The HBA 120 may thenschedule access to the virtual tape storage 170 and/or virtual diskstorage 180 using any of a wide variety of criteria (e.g., first-infirst-out (FIFO) or prioritized approach). In another exemplaryembodiment, the same virtual tape storage 170 and/or virtual diskstorage 180 may be mapped to more than one OS 110 (e.g., OS 110 a and OS110 b) for simultaneous access. A cache may be enabled to handlesimultaneous data access operations.

FIG. 2 is a more detailed schematic diagram of an exemplary host busadapter (HBA) 120 which may be implemented in the system of FIG. 1 forpresenting virtual tape products using disk storage. As mentioned above,HBA 120 may map the OS 110 directly to the virtual tape storage 170and/or virtual disk storage 180 in the storage device 150. Accordingly,HBA 120 is able to directly manage virtual devices on the storage device150 and handle data access communications with the OS.

In an exemplary embodiment, HBA 120 may include an interface module 210.Interface module 210 may be implemented to interface with OS 110 and thestorage device 150. For example, interface module 210 may handlerequests from the OS 110 to access a virtual device 170 and/or 180.

HBA 120 may include a device allocation module 220. The allocationmodule 220 may be implemented to allocate storage on one or more of theplurality of disks as either virtual tape storage 170 or as virtual diskstorage 180. In exemplary embodiments, the allocation module 220 maychange the allocation (e.g., ratio) from one type of virtual device toanother type of virtual device. For example, a portion of the storagedevice initially allocated as virtual tape storage may be reallocated asvirtual disk storage or vice versa, depending on the needs of theuser(s).

HBA 120 may include a device mapping module 230. Device mapping module230 may issue mapping commands to map the OS 110 to the virtual device170 and/or 180 to logically connect and disconnect the storage device150.

HBA 120 may also include a device access and translation module 240.Device access and translation module 240 may be implemented to routesignals between the OS 110 and the storage device 150 for storageoperations. Device access and translation module 240 may also beimplemented to translate communications for the virtual tape storage. Itis noted that the translation function needs to be invoked in bothdirections. For example, a tape communication from the OS (originatingwith the tape backup software 260) may be translated from a tape commandinto a SCSI command for the tape storage. Or for example, a SCSI commandfrom the hard disk representing tape storage may be translated into atape command for the OS because the tape backup software 260 isexpecting to receive tape communications.

HBA 120 may also include a device status module 250. Device statusmodule 250 may be implemented to monitor the status of the storagedevice 150 and access by OS 110. For example, device status module 250may notify OS 110 if a virtual device is busy or otherwise unavailable.Device status module 250 may also handle other information for thestorage device 150, e.g., as input by a user at the management interface265, such as allocating physical disk space for the virtual devices 170and/or 180.

It is noted that exemplary HBA 120 is shown and described herein merelyfor purposes of illustration and is not intended to be limited to anyparticular implementation. For example, the modules do not need to beencapsulated as the separate functional components shown in FIG. 2. Inaddition, HBA 120 may also write one or more logs to memory, retrievesystem state information, and/or implement one or more other functions.Other functional components may also be provided to implement otherfunctions and are not limited to those shown and described herein.

Before continuing, it should be understood that the exemplaryembodiments discussed above are provided for purposes of illustrationand are not intended to be limiting. Still other implementations arealso contemplated.

Exemplary Operations

FIG. 5 is a flowchart illustrating exemplary operations 300 to implementvirtual tape products using disk storage. The operations may be embodiedas logic instructions on one or more computer-readable media. The logicinstructions may be executed on one or more processing units of the HBAto implement the described operations. In an exemplary embodiment, thecomponents and connections depicted in the figures may be used.

In operation 310 a plurality of disks may be discovered. In an exemplaryembodiment, the HBA discovers the plurality of disks at start-up and/orduring operation (e.g., for hot-plug operations). In operation 320, aplurality of disks connected to the HBA are allocated as both virtualtape storage and disk storage and are mapped as devices to the OS.Accordingly, the plurality of disks may be presented to the OS so thatthe disk storage and/or tape storage appears as actual tape media intape drives or as distinct physical hard disk drives connected to theclient.

In operation 330, a determination is made whether an I/O communicationreceived at the HBA is a disk communication (e.g., request to read/writedata on a hard disk drive) or a tape communication (e.g., a request toread/write data on a tape drive). If the I/O communication is a diskcommunication, no translation function is needed in order to access thevirtual disk storage. Accordingly in operation 331, the HBA may accessthe disk storage portion of the plurality of disks.

If the I/O communication is a tape communication, a translation functionis invoked so that the tape communication can be issued to the hard diskrepresenting the tape storage. Accordingly in operation 332, the HBA maytranslate the I/O request. As noted above, the translation functionneeds to be invoked in both directions. For example, a tapecommunication from the OS may be translated from a tape command into aSCSI command for the tape storage. Or for example, a SCSI command fromthe hard disk representing tape storage may be translated into a tapecommand for the OS because the software (e.g., backup software 260 inFIG. 2) is expecting to receive tape communications. After translating,the HBA may access the tape storage portion of the plurality of disks inoperation 333.

The operations shown and described herein are provided to illustrateexemplary embodiments for presenting virtual tape products to a clientusing disk storage. It is noted that the operations are not limited tothe ordering shown. Still other operations may also be implemented toenable virtual tape products using disk storage.

In addition to the specific embodiments explicitly set forth herein,other aspects and implementations will be apparent to those skilled inthe art from consideration of the specification disclosed herein. It isintended that the specification and illustrated embodiments beconsidered as examples only.

The invention claimed is:
 1. A method for presenting virtual tape products to a client, comprising: connecting via a switching fabric individual host bus adapters (HBAs) at each of a plurality of client operating systems to a storage device, by default the individual HBAs logically disconnected from the storage device, the individual HBAs mapping the respective client operating systems to the storage device to establish a logical connection with the storage device for data access on an as-needed basis; allocating a plurality of disks at the storage device as both virtual tape storage and virtual disk storage; distinguishing at the HBA, between storage allocated as virtual tape storage and storage allocated as virtual disk storage for: translating at the HBA of a logically connected client operating system an input/output (I/O) communication between the client operating system and the plurality of disks to access at least a portion of the plurality of disks allocated as virtual tape storage; and handling all other I/O communication between the client and the plurality of disks at the same HBA for access to the plurality of disks allocated as virtual disk storage.
 2. The method of claim 1 wherein the HBA concurrently handles I/O communications for the virtual tape storage and the virtual disk storage.
 3. The method of claim 1 wherein the HBA presents the virtual tape storage allocated on the plurality of disks as at least one physical tape media loaded in a tape drive.
 4. The method of claim 1 further comprising varying physical space allocated on the plurality of disks for the virtual tape storage and the virtual disk storage.
 5. The method of claim 4 wherein varying physical space is in real-time.
 6. The method of claim 4 wherein varying physical space is in response to input received by a user at a management interface.
 7. The method of claim 1 further comprising supporting redundant array of independent disk (RAID) volumes on the plurality of disks.
 8. The method of claim 1 further comprising propagating configuration changes on the plurality of disks to the client operating system.
 9. A system comprising: a plurality of disks; an individual host bus adapter (HBA) at each of a plurality of clients, the HBA communicatively coupling the plurality of disks to a respective client operating system (OS), by default the individual HBA logically disconnected from a storage device having the plurality of disks, and the individual HBA mapping the respective client OS to the storage device to establish a logical connection with the storage device for data access on an as-needed basis; program code executed by the individual HBA at each of the plurality of clients to: allocate physical space on the plurality of disks as both virtual tape storage and as virtual disk storage; distinguishing at the individual HBA, between storage allocated as virtual tape storage and storage allocated as virtual disk storage; and translate input/output (I/O) communication between the OS and the physical space allocated as the virtual tape storage.
 10. The system of claim 9 wherein the individual HBA discovers the plurality of disks at start-up and during operation in a hot-plug mode.
 11. The system of claim 9 wherein the individual HBA presents the virtual tape storage allocated on the plurality of disks as at least one physical tape media loaded in a tape drive.
 12. The system of claim 9 further comprising a management interface operatively associated with the program code executed by the individual HBA for configuring the plurality of disks.
 13. The system of claim 9 wherein the program code varies a ratio of physical space allocated on the plurality of disks for the virtual tape storage to physical space allocated on the plurality of disks for the virtual disk storage.
 14. The system of claim 9 wherein the OS addresses the HBA to request access to the storage device.
 15. The system of claim 9 wherein the HBA checks availability of a requested virtual tape storage and virtual disk storage in the storage device and then maps the OS to requested storage if the requested storage is available.
 16. The system of claim 15 wherein the HBA schedules access to the requested storage.
 17. The system of claim 9 wherein the HBA maps virtual tape storage and virtual disk storage to more than one OS for simultaneous access.
 18. A system for presenting virtual tape products to a client: means for allocating a plurality of disks as both virtual tape storage and virtual disk storage; means for distinguishing between storage allocated as virtual tape storage and storage allocated as virtual disk storage and selectively invoking at a host bus adapter (HBA) at each of a plurality of clients: means for translating tape requests at the host bus adapter (HBA) from a client operating system (OS) into small computer system interface (SCSI) commands for accessing the plurality of disks allocated as virtual tape storage; and means for translating communications at the HBA from the plurality of disks allocated as virtual tape storage into SCSI commands for return to the client OS.
 19. The system of claim 18 further comprising user interface means for varying a ratio of physical space a located for the virtual tape storage and physical space allocated for the virtual disk storage.
 20. The system of claim 18 further comprising means for presenting the virtual tape storage to the OS as at least one physical tape media loaded in a tape drive. 